luci-mod-network: fix address validation
authorKyle Schwarz <[email protected]>
Sat, 19 Nov 2022 21:33:55 +0000 (16:33 -0500)
committerKyle Schwarz <[email protected]>
Sat, 19 Nov 2022 21:34:04 +0000 (16:34 -0500)
Fixes --server validation for:
- /domain[/domain]
- //
- /#/

Fixes hostname validation for:
- *.domain
- *domain

Changes ..domain to be an invalid hostname

Signed-off-by: Kyle Schwarz <[email protected]>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js

index 2f61c8576bda4ce69a4be039fd62f8cb26c2909f..1a308e2c610900e726cbad0bd87c8d5b3f6fa677 100644 (file)
@@ -126,7 +126,7 @@ function validateHostname(sid, s) {
        if (s.length > 256)
                return _('Expecting: %s').format(_('valid hostname'));
 
-       var labels = s.replace(/^\.+|\.$/g, '').split(/\./);
+       var labels = s.replace(/^\*?\.?|\.$/g, '').split(/\./);
 
        for (var i = 0; i < labels.length; i++)
                if (!labels[i].match(/^[a-z0-9_](?:[a-z0-9-]{0,61}[a-z0-9])?$/i))
@@ -156,13 +156,15 @@ function validateServerSpec(sid, s) {
        if (s == null || s == '')
                return true;
 
-       var m = s.match(/^(?:\/(.+)\/)?(.*)$/);
+       var m = s.match(/^(\/.*\/)?(.*)$/);
        if (!m)
                return _('Expecting: %s').format(_('valid hostname'));
 
-       var res = validateAddressList(sid, m[1]);
-       if (res !== true)
-               return res;
+       if (m[1] != '//' && m[1] != '/#/') {
+               var res = validateAddressList(sid, m[1]);
+               if (res !== true)
+                       return res;
+       }
 
        if (m[2] == '' || m[2] == '#')
                return true;